package main

import (
	"fmt"
	"github.com/owulveryck/onnx-go"
)

// 在这里，我们首先加载了ONNX模型，并准备了测试数据。然后，我们创建了一个输入张量，
// 并使用模型的Run方法进行预测。最后，我们解析输出张量，并获取预测结果。
// 注意，我们使用了onnx.NewTensor函数来创建输入张量，以及使用了outputTensor.Value()方法获取输出张量的值。


func main() {
	// 加载ONNX模型
	model, err := onnx.NewModel("lstm_model.onnx")
	if err != nil {
		panic(err)
	}

	// 准备测试数据
	seqLength := 10
	xTest := make([][]float32, seqLength)
	for i := 0; i < seqLength; i++ {
		xTest[i] = make([]float32, 8)
		// 将测试数据填充到xTest中
		// ...
	}

	// 创建输入张量
	inputTensor := onnx.NewTensor(xTest)

	// 运行模型
	outputs, err := model.Run(inputTensor)
	if err != nil {
		panic(err)
	}

	// 解析输出张量
	outputTensor := outputs[0]
	outputData := outputTensor.Value().([][]float32)
	prediction := outputData[len(outputData)-1]

	// 打印预测结果
	fmt.Println(prediction)
}
